package tech.heptagram.staff.cas.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;

import tech.heptagram.staff.cas.domain.info.MenuTreeVo;
import tech.heptagram.staff.cas.domain.po.Menu;

/**
 * Created by yang on 2017/7/5.
 */
public interface CasMenuMapper {
    int insert(Menu po);

    int deletedById(@Param("menuId") Integer menuId, @Param("deletedBy") String deletedBy);

    void updateAppField(@Param("id") Integer id, @Param("app") String app);

    int update(Menu po);

    List<Menu> selectByParentId(Integer parentId);

    List<Menu> selectByParentIdWithAppField(Integer parentId);

    Menu selectById(Integer id);

    List<Menu> selectByPath(String path);

    List<Menu> selectByRoleIds(@Param("roleIds") List<Integer> roleIds);

    List<Menu> selectByRoleIdsAndApp(@Param("roleIds") List<Integer> roleIds, @Param("app") String app);

    List<Menu> selectOperateByRoleIdsAndMenuId(@Param("roleIds") List<Integer> roleIds, @Param("menuId") Integer menuId);

    List<Menu> selectOperateByRoleIds(@Param("roleIds") List<Integer> roleIds);

    Menu select(Menu vo);

    Menu selectByTypeAndPath(@Param("type") Integer type, @Param("path") String path);

    MenuTreeVo selectMenuTree(@Param("parentId") Integer parentId);

    List<Menu> selectAllMenuByRoleId(@Param("roleId") Integer roleId);

    List<Menu> selectByIds(@Param("menuIds") List<Integer> menuIds);
}
